package testesOxente;

import java.io.File;

import oxente.Musica;

import org.junit.Assert;
import org.junit.Test;

public class TestaMusica {
	Musica musica;

	public TestaMusica() throws Exception {
		musica = new Musica("titulo: album :artista :ano: genero   :  localizacao");
	}
	
	@Test (expected = Exception.class)
	public void construtorMusica1() throws Exception {
		new Musica(null);
	}
	
	@Test (expected = Exception.class)
	public void construtorMusica2() throws Exception {
		new Musica("q:w:e:r:tttt");		
	}

	@Test
	public void testGetTitulo() {
		Assert.assertTrue(musica.getTitulo().equals("titulo"));
	}

	@Test
	public void testGetAlbum() {
		Assert.assertTrue(musica.getAlbum().equals("album"));
	}

	@Test
	public void testGetArtista() {
		Assert.assertTrue(musica.getArtista().equals("artista"));
	}

	@Test
	public void testGetAnoDeGravacao() {
		Assert.assertTrue(musica.getAnoDeGravacao().equals("ano"));
	}

	@Test
	public void testGetGenero() {
		Assert.assertTrue(musica.getGenero().equals("genero"));
	}

	@Test
	public void testGetLocalizacao() {
		Assert.assertTrue(musica.getLocalizacao().equals(new File("localizacao")));
	}

	@Test
	public void testQualificar() {
		Assert.assertTrue(musica.getQualificacao() == 0);
		musica.qualificar(5);
		Assert.assertTrue(musica.getQualificacao() == 5);
		musica.qualificar(8);
		Assert.assertTrue(musica.getQualificacao() == 5);

	}

	@Test
	public void testToString() {
		Assert.assertTrue(musica.toString().equals(
				"titulo : album : artista : ano : genero : localizacao"));
	}

	@Test
	public void testReproduzir() {
		Assert.assertTrue(musica.reproduzir().equals(
				"Reproduzindo ...\n\ttitulo:album:artista\n"));
	}

}

